#include <iostream>
using namespace std;

int main(int argc,const char *argv[])
{
    //赋值操作
    //string s1 = "hello";    //直接赋值
    //string s2;
    //s2 = "world";   //使用赋值运算符
    //string s3(s1);  //拷贝构造
    //string s4(5, 'A');  //重复字符赋值，s4='AAAAA'

    //字符串拼接
    //使用 + 运算符 或 append() 函数进行字符串拼接：
    //string s1 = "Hello,";
    //string s2 = "world";
    //string s3 = s1 + s2;//使用+进行拼接，不改变原字符串
    //s1.append(" C++");//使用append函数拼接,改变原字符串
    //cout << s3 << endl;
    //cout << s1 << endl;

    //查找和替换
    //使用find()和replace()函数用于查找和替换子字符串：
    //string s = "Hello,World!";
    //size_t pos = s.find("World!"); //查找子字符串"World!"
    //if(pos != string::npos)
    //{
    //    s.replace(pos,3,"C++");//从字符串s中的pos位置开始的三个字符换为“C++”
    //}
    //cout << s << endl;

    //字符串比较
    //C++中可以直接使用关系运算符(如==,!=,<,>等)来比较string对象
    //string s1 = "apple";
    //string s2 = "banana";
    //if(s1 == s2){//比较的是首字符地址的大小
    //    cout << "The strings are equal" << endl;
    //}else if (s1 < s2)
    //{
    //    cout << "s1 comes before s2" << endl;
    //}else if (s1 > s2){
    //    cout << "s2 comes after s2" << endl;
    //}

    //字符串存取
    //使用下表操作符 [] 或 at() 方法来访问或修改字符串中的字符
    //string s = "Hello";
    //char c = s[1];      //访问第二个字符‘e’
    //char c2 = s.at(2);  //使用at()方法访问第三个字符“l”
    //cout << c << endl;
    //cout << c2 << endl;

    //字符串插入
    //使用insrert()函数可以在指定位置插入子字符串
    //string s = "Hello!";
    //s.insert(5, " C++");
    //cout << s << endl;

    //字符串删除
    //string类 提供 erase() 函数来删除字符串中的部分内容
    //string s = "Hello, C++!";
    //s.erase(5, 7);  // 从索引5开始，删除7个字符，结果为 "Hello"
    //cout << s << endl;

    //字符串清空
    //可以使用 clear() 函数来清空字符串的内容：
    string s = "Hello!";
    s.clear();  // 清空字符串，s 变为空字符串 ""
    cout << s << endl;
    return 0;
}